package main.java.com.healthy.dao;



import main.java.com.healthy.entity.DietRecord;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * 饮食记录数据访问接口
 * 对应功能模块：饮食记录与追踪模块
 */
public interface DietRecordDAO {

    /**
     * 添加饮食记录
     */
    boolean addRecord(DietRecord record);

    /**
     * 更新饮食记录
     */
    boolean updateRecord(DietRecord record);

    /**
     * 删除饮食记录
     */
    boolean deleteRecord(String recordId);

    /**
     * 根据记录ID获取记录
     */
    DietRecord getRecordById(String recordId);

    /**
     * 获取用户指定日期的所有记录
     */
    List<DietRecord> getRecordsByUserAndDate(String userId, LocalDate date);

    /**
     * 获取用户日期范围内的记录
     */
    List<DietRecord> getRecordsByUserAndDateRange(String userId, LocalDate startDate, LocalDate endDate);

    /**
     * 获取用户指定餐次的记录
     */
    List<DietRecord> getRecordsByUserAndMealType(String userId, LocalDate date, String mealType);

    /**
     * 计算用户指定日期的营养汇总
     */
    Map<String, Double> calculateDailyNutrition(String userId, LocalDate date);

    /**
     * 计算用户日期范围内的营养汇总
     */
    Map<String, Double> calculateNutritionSummary(String userId, LocalDate startDate, LocalDate endDate);

    /**
     * 获取用户最近N天的记录日期
     */
    List<LocalDate> getRecentRecordDates(String userId, int days);
}